import {request} from '../../request/index.js';
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 左侧菜单数据
    leftMenuList:'',
    // 右侧菜单数据
    rightContent:'',
    // 被点击的左侧菜单
    currentIndex:0,
    // 右侧内容的滚动条距离顶部的距离
    scrollTop:0
  },
  // 接口返回数据
  Cates:'',

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*
    0.微信小程序本地存储方式
      1.设置缓存
        wx.setStorageSync("key",{})
      2.获取缓存
        wx.getStorageSync("key")
    1.判断本地是否有数据
      {time:Date.now(),data:[...]}
    2.无数据请求新数据  并缓存
    3.有数据 且数据未过期 使用旧数据
    */

    // 先获取本地存储数据
    const Cates=wx.getStorageSync("cates");
    if(!Cates){
      // 不存在发送请求
      this.getCates();
    }else{
      // 有旧的数据 定义过期时间 10s 改成5分钟
      if(Date.now()-Cates.time>1000*10){
        // 重新发送请求
        this.getCates();
      }else{
        // 可以使用旧的数据
        this.Cates=Cates.data;
        // 构造左侧大菜单数据
        let leftMenuList = this.Cates.map(v => v.cat_name);
        // 构造右侧商品数据
        let rightContent = this.Cates[this.data.currentIndex].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
    
  },
  // 获取分类数据
  async getCates(){
    // request({
    //   url:'/categories',
    //   method:'GET'
    // })
    // .then(result=>{

    // })

    // 使用es7的async await来发送请求
    const result= await request({url:'/categories'});
    this.Cates=result;
    // 存数据
    wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})
    // 构造左侧大菜单数据
    let leftMenuList=this.Cates.map(v=>v.cat_name);
    // 构造右侧商品数据
    let rightContent = this.Cates[this.data.currentIndex].children;
    this.setData({
      leftMenuList,
      rightContent
    })
    },
  // 左侧菜单的点击事件
  handleItemTap(e){
    let currentIndex=e.currentTarget.dataset.index;
    let rightContent=this.Cates[currentIndex].children
    this.setData({
      currentIndex,
      rightContent,
      // 重新设置 右侧内容的scroll-view标签距离顶部的距离
      scrollTop:0
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

